package com.bai.localshop.service;

import com.bai.localshop.pojo.dto.ProductCategoryPageDTO;
import com.bai.localshop.pojo.dto.ProductCategorySaveDTO;
import com.bai.localshop.pojo.dto.ProductCategoryUpdateDTO;
import com.bai.localshop.pojo.dto.ProductUpdateStatusDTO;
import com.bai.localshop.pojo.vo.ProductCategoryOptionVO;
import com.bai.localshop.pojo.vo.ProductCategoryPageVO;
import com.bai.localshop.pojo.vo.ProductCategoryVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bai.localshop.pojo.entity.ProductCategory;

import java.util.List;

/**
 * 商品分类服务接口
 */
public interface ProductCategoryService extends IService<ProductCategory> {

    /**
     * 获取商品分类列表（用于下拉选择）
     */
    List<ProductCategoryOptionVO> listCategoryOptions();

    /**
     * 分页查询商品分类
     */
    IPage<ProductCategoryPageVO> pageQuery(ProductCategoryPageDTO requestParam);

    /**
     * 查询所有启用的商品分类
     */
    List<ProductCategoryOptionVO> listEnabledCategories();

    /**
     * 根据ID查询商品分类
     */
    ProductCategoryVO getCategoryById(Long id);

    /**
     * 修改商品分类
     */
    void updateCategory(ProductCategoryUpdateDTO requestParam);

    /**
     * 删除商品分类
     */
    void deleteCategoryById(Long id);

    /**
     * 新增商品分类
     */
    void saveCategory(ProductCategorySaveDTO requestParam);

    /**
     * 修改商品分类状态
     * @param requestParam
     */
    void updateStatus(ProductUpdateStatusDTO requestParam);
}